____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Java-Syntax
part 14/15 Β· 52.8 KB total
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Sie haben selbst keinen konkreten Typ und kΓΆnnen daher nur in einem Kontext verwendet werden, der einen Typ vorgibt, etwa Methodenaufrufe, Return-Anweisungen und Variableninitialisierungen. Der vorgegebene Typ muss eine funktionale Schnittstelle sein. In folgendem Beispiel ist ein Comparator<String>-Objekt mit Hilfe eines Lambda-Ausdrucks definiert. Der sort-Aufruf bewirkt die Sortierung von someStrings nach deren LΓ€nge, in absteigender Reihenfolge.
List<String> someStrings = ...
Collections.sort(someStrings, (x,y) -> y.length() - x.length());
Lambda-AusdrΓΌcke helfen, die oft schlecht lesbaren, langen Deklarationen innerer, anonymer Klassen, zu vermeiden.
In Java heiΓen Schnittstellen, die nur ΓΌber eine Operation (abstrakte Methode) verfΓΌgen, funktionale Schnittstellen. Eine abstrakte Klasse mit genau einer abstrakten Methode zΓ€hlt allerdings nicht als funktionale Schnittstelle.
Methodenreferenzen stellen ebenfalls eine ab Java 8 verfΓΌgbare MΓΆglichkeit dar, funktionale Schnittstellen zu implementieren. Sie haben eine der Formen
<Klassenreferenz>::<Methodenbezeichner>
<Ausdruck>::<Methodenbezeichner>
In folgendem Code wird die Methodenreferenz System.out::println als ein java.util.function.Consumer<String>-Objekt verwendet.
static <A> Consumer<A> doTwice(Consumer<A> consumer) {
return a -> {
consumer.accept(a);
consumer.accept(a);
};
}
static void foo() {
doTwice(System.out::println).accept("Hello");
}
Kommentare
Kommentare sind Teile des Quellcodes, welche Informationen fΓΌr den menschlichen Leser enthalten und vom Computer bei der Weiterverarbeitung ignoriert werden.
Man unterscheidet zwischen Zeilenkommentare und Blockkommentare. Der Zeilenkommentar folgt an einer Zeile. Die Syntax besteht aus einem DoppelschrΓ€gstrich. Der Blockkommentar umfasst die Beschreibung mehrerer Zeilen. Die Syntax dafΓΌr besteht aus einem SchrΓ€gstrich und darauf folgendes Mal-Zeichen. Mit dem Mal-Zeichen und dem SchrΓ€gstrich wird der Kommentar geschlossen. Beim Kompilieren werden die Kommentare vom Compiler ignoriert.
Beispiel:
int i = 10; // Zeilenkommentar: hier bekommt die Variable i den Wert 10 zugewiesen.
int j = 0;
/* Blockkommentar: hier beginnt eine While-Schleife
....
j wird um Eins erhΓΆht, solange j kleiner i ist.*/
while (j < i) {
j++;
}
Zur Dokumentation ganzer Methoden oder Klassen wird oft das Javadoc-System verwendet.
Generische Programmierung
β
Hauptartikel
:
Generische Programmierung in Java
Mit Version 5 von Java wurde das Sprachmittel der generischen Programmierung eingefΓΌhrt.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ